# 文件操作
# open() 创建一个 file 对象 默认只读
# read(n) 从文件读取指定长度
# write() 写入文件
# close() 关闭文件
# name 文件名
# mode 文件访问模式
# closed 文件是否关闭
# f = open('a.txt')
# print(f.name)
# print(f.mode)
# print(f.closed)
# f.close()

# read(n) 读取一行
f = open('a.txt')
# print(f.read())
# print(f.read(5))
# readline() 读取一行
# print(f.readline())
# while True:
#     text = f.readline()
#     if not text:
#         break
#     print(text)
# readlines() 以列表方式全部返回
text = f.readlines()
for i in text:
    print(i)
f.close()

# 访问模式
# r 只读模式 文件必须存在，不存在报错
file = open('a.txt', 'r')
print(file.read())
file.close()
# w 只写模式 文件存在清空文件，再写入 不存在新建文件，再写入
file = open('a.txt', 'w')
file.write("xxx")
file.close()
# + 可读写 会影响读写效率
# r+ 可读写文件，文件不存在报错
# w+ 先写再读，文件存在就重新编辑文件
file = open('a.txt', 'w+')
file.write("zhangsan")
print(file.read())
file.close()
# a 追加模式 ，不存在新建文件写入，存在追加
f = open('a.txt', 'a+')
f.write('\nlisi\nwangwu')
print(f.read())
f.close()
# 文件定位
f = open('a.txt', 'w+')
f.write("Hell Python !")
pos = f.tell()
print("文件指针移动前位置", pos)
f.seek(0, 0)
# 移动后所在位置
pos2 = f.tell()
print("文件指针移动后位置", pos2)
print(f.read())
f.close()
# with open 自动关闭文件
with open('a.txt', 'w') as f:
    f.write("liisidiid")
print(f.closed)
# 文件编码格式设置
with open('a.txt', 'w', encoding='utf-8') as f:
    f.write("早上好呀，各位朋友！")
with open('a.txt', encoding='utf-8') as f:
    print(f.read())
# 读取图片文件
with open(r'C:\Users\Administrator\Desktop\Mapnik\Mapnik\12\3253\2397.png', 'rb') as f:
    img = f.read()
    print(img)
# 写入图片文件
with open('E:\\Py\\Learn\\Py01\\s.png', 'wb') as f:
    f.write(img)
# 目录操作
import os

# 文件重命名 rename()
# os.rename('a.txt', 'zhagnsan.txt')
# 删除文件 remove()
# os.remove('zhagnsan.txt')
# mkdir() 创建文件夹
# os.mkdir('zhang')
# rmdir() 删除文件夹
# os.rmdir('zhang')
# getcwd() 获取当前目录
print(os.getcwd())
# 获取当前目录列表
print(os.listdir())
# 获取上级目录列表
print(os.listdir('../'))
